package com.cg.util;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MessageUtils {

	//定义消息类型（常量：文本类型）
	public static final String RESP_MESSAGE_TYPE_TEXT="text"; 
	
	
	//请求消息类型：事件推送 时间拉取
	public static final String REQ_MESSAGE_TYPE_EVENT="event"; //MsgType
	
	//事件类型：subscribe(订阅)
	public static final String EVENT_TYPE_SUBSCRIBE="subscribe";//event
	
	//事件类型：unsubscribe(取消订阅)
	public static final String EVENT_TYPE_UNSUBSCRIBE="unsubscribe";
	
	//事件类型：scan(用户已关注时的扫描带参数二维码)
	public static final String EVENT_TYPE_SCAN="scan";
	
	//事件类型：LOCATION(上报地理位置)
	public static final String EVENT_TYPE_LOCATION="LOCATION";
	
	//事件类型：CLICK(自定义菜单)
	public static final String EVENT_TYPE_CLICK="CLICK";
	
	/**
	 * 将request请求转换成DOM
	 * @param request
	 * @return
	 */
	public static Map<String,String> parseXml(HttpServletRequest request){
		Map<String,String> requestMap=null;
		try {
			
			 InputStream inputStream=request.getInputStream();
			 //构造SAX阅读器对象
			 SAXReader reader=new SAXReader();
			 //获得根节点（xml）
			 Document document=reader.read(inputStream);
			 //获得根节点下的所有子节点
			 Element root=document.getRootElement(); 
			 //锟矫碉拷锟斤拷元锟斤拷锟铰碉拷锟斤拷锟斤拷锟接节碉拷 
			 List<Element> elementList=root.elements();
			 requestMap=new HashMap<String,String>();
			 for(Element e: elementList){
			 requestMap.put(e.getName(),e.getText());
			 }
			 inputStream.close();
			 inputStream=null;
		} catch (Exception e) {
              e.printStackTrace();
		}
		return requestMap;
		
	}
	
}
